import { useApplicationConfigurationStore } from '@/stores/ApplicationConfiguration'
import type { App } from 'vue'

const localizationPlugin = {
  install(app: App<Element>) {
    useApplicationConfigurationStore().initApplicationConfiguration()
    // 安装全局可用的属性 国际化方法
    app.config.globalProperties.$l = (key: string) => {
      const store = useApplicationConfigurationStore()
      return store.l(key)
    }
  },
}

export default localizationPlugin

// 在Vue中定义扩展全局属性
export {} // 注意：没有这行代码将覆盖原始类型
declare module 'vue' {
  export interface ComponentCustomProperties {
    /**
     * 国际化语言转换
     * @param key 国际化配置的Key
     * @returns 国际化配置的译文
     */
    $l: (key: string) => string
  }
}
